/**
 * 带单位计算
 * @param val string 处理的值(含单位)
 * 		单位提取为: 左到右,首个非数字字符开始
 * @param mix string|null 计算  null:仅解析
 * 		string: 无单位, 前缀计算方式: + - * /
 * @return array|string array:解析->[值,单位]
 */
$.calc = function(val, mix=null){
	let m = val.match(/^(-?\d*(\.\d+)?)(.*)$/);
	let v=m[1]||0, u=m[3]; if(!mix) return [v,u];
	let x=mix.charAt(0), a=mix.slice(1)*1;  v*=1;
	if(x==='+') v+=a; else if(x==='-') v-=a;
	else if(x==='*') v*=a; else if(x==='/') v/=a;
    else $.err('$.calc.mix',mix);  return v+u;
};
